home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / ssyrk.z / ssyrk
Encoding:
Text File  |  2002-10-03  |  20.3 KB  |  397 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSSSSSYYYYRRRRKKKK, DDDDSSSSYYYYRRRRKKKK, CCCCSSSSYYYYRRRRKKKK, ZZZZSSSSYYYYRRRRKKKK - Performs symmetric rank _k update of a real
  10.      or complex symmetric matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision complex
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL SSSSSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c))))
  17.  
  18.           C/C++:
  19.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  20.                vvvvooooiiiidddd ssssssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,,
  21.                ffffllllooooaaaatttt *_a,,,, iiiinnnntttt _l_d_a,,,, ffffllllooooaaaatttt _b_e_t_a,,,, ffffllllooooaaaatttt *_c,,,, iiiinnnntttt _l_d_c))));;;;
  22.  
  23.      Double precision
  24.  
  25.           Fortran:
  26.                CCCCAAAALLLLLLLL DDDDSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c))))
  27.  
  28.           C/C++:
  29.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  30.                vvvvooooiiiidddd ddddssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ddddoooouuuubbbblllleeee
  31.                _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_a,,,, iiiinnnntttt _l_d_a,,,, ddddoooouuuubbbblllleeee _b_e_t_a,,,, ddddoooouuuubbbblllleeee *_c,,,, iiiinnnntttt _l_d_c))));;;;
  32.  
  33.      Single precision complex
  34.  
  35.           Fortran:
  36.                CCCCAAAALLLLLLLL CCCCSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c))))
  37.  
  38.           C/C++:
  39.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  40.                vvvvooooiiiidddd ccccssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  41.                *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b_e_t_a,,,,
  42.                ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  43.  
  44.           C++ STL:
  45.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  46.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  47.                vvvvooooiiiidddd ccccssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,,
  48.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a,,,, iiiinnnntttt _l_d_a,,,,
  49.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;;
  50.  
  51.      Double precision complex
  52.  
  53.           Fortran:
  54.                CCCCAAAALLLLLLLL ZZZZSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c))))
  55.  
  56.           C/C++:
  57.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  58.                vvvvooooiiiidddd zzzzssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  59.                *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b_e_t_a,,,,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  71.  
  72.  
  73.  
  74.                ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  75.  
  76.           C++ STL:
  77.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  78.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  79.                vvvvooooiiiidddd zzzzssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,,
  80.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, iiiinnnntttt _l_d_a,,,,
  81.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;;
  82.  
  83. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  84.      These routines are part of the SCSL Scientific Library and can be loaded
  85.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  86.      directs the linker to use the multi-processor version of the library.
  87.  
  88.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  89.      4 bytes (32 bits). Another version of SCSL is available in which integers
  90.      are 8 bytes (64 bits).  This version allows the user access to larger
  91.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  92.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  93.      only one of the two versions; 4-byte integer and 8-byte integer library
  94.      calls cannot be mixed.
  95.  
  96.      The C and C++ prototypes shown above are appropriate for the 4-byte
  97.      integer version of SCSL. When using the 8-byte integer version, the
  98.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  99.      file should be included.
  100.  
  101. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  102.      SSSSSSSSYYYYRRRRKKKK and DDDDSSSSYYYYRRRRKKKK perform a symmetric rank _k update of a real symmetric
  103.      matrix.
  104.  
  105.      CCCCSSSSYYYYRRRRKKKK and ZZZZSSSSYYYYRRRRKKKK perform a symmetric rank _k update of a complex symmetric
  106.      matrix.
  107.  
  108.      These routines perform one of the following symmetric rank _k operations:
  109.  
  110.           _C <- _a_l_p_h_a _A_A_T + _b_e_t_a _C
  111.  
  112.           or
  113.  
  114.           _C <- _a_l_p_h_a _A_T_A + _b_e_t_a _C
  115.  
  116.      where the following is true:
  117.  
  118.      *   _A_T is the transpose of _A;
  119.  
  120.      *   _a_l_p_h_a and _b_e_t_a are scalars;
  121.  
  122.      *   _C is an _n-by-_n symmetric matrix;
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      *   _A is an _n-by-_k matrix in the first operation listed previously, and a
  141.          _k-by-_n matrix in the second.
  142.  
  143.      See the NOTES section of this man page for information about the
  144.      interpretation of the data types described in the following arguments.
  145.  
  146.      These routines have the following arguments:
  147.  
  148.      _u_p_l_o      Character.  (input)
  149.                Specifies whether the upper or lower triangular part of array _c
  150.                is referenced, as follows:
  151.  
  152.                _u_p_l_o = 'U' or 'u':  only the upper triangular part of _c is
  153.                referenced.
  154.                _u_p_l_o = 'L' or 'l':  only the lower triangular part of _c is
  155.                referenced.
  156.  
  157.                For C/C++, a pointer to this character is passed.
  158.  
  159.      _t_r_a_n_s     Character*1.  (input)
  160.                Specifies the operation to be performed, as follows:
  161.  
  162.                _t_r_a_n_s = 'N' or 'n':  _C <- _a_l_p_h_a _A_A_T + _b_e_t_a _C
  163.  
  164.                _t_r_a_n_s = 'T' or 't':  _C <- _a_l_p_h_a _A_T_A + _b_e_t_a _C
  165.  
  166.                For C/C++, a pointer to this character is passed.
  167.  
  168.      _n         Integer.  (input)
  169.                Specifies the order of matrix _C.  _n must be >= 0.
  170.  
  171.      _k         Integer.  (input)
  172.  
  173.                On entry with _t_r_a_n_s = 'N' or 'n', _k specifies the number of
  174.                columns of matrix _A.
  175.                On entry with _t_r_a_n_s = 'T' or 't', _k specifies the number of
  176.                rows of matrix _A.
  177.  
  178.                _k must be  >= 0.
  179.  
  180.      _a_l_p_h_a     Scalar factor.  (input)
  181.                SSSSSSSSYYYYRRRRKKKK: Single precision.
  182.                DDDDSSSSYYYYRRRRKKKK: Double precision.
  183.                CCCCSSSSYYYYRRRRKKKK: Single precision complex.
  184.                ZZZZSSSSYYYYRRRRKKKK: Double precision complex.
  185.  
  186.                For C/C++, a pointer to this scalar is passed when alpha is
  187.                complex; otherwise, alpha is passed by value.
  188.  
  189.      _a         Array of dimension (_l_d_a,_k_a).  (input)
  190.                SSSSSSSSYYYYRRRRKKKK: Single precision array.
  191.                DDDDSSSSYYYYRRRRKKKK: Double precision array.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  203.  
  204.  
  205.  
  206.                CCCCSSSSYYYYRRRRKKKK: Single precision complex array.
  207.                ZZZZSSSSYYYYRRRRKKKK: Double precision complex array.
  208.  
  209.                When _t_r_a_n_s_a = 'N' or 'n', _k_a is _k; otherwise, it is _n.
  210.                Contains the matrix _A.
  211.  
  212.                Before entry with _t_r_a_n_s = 'N' or 'n', the leading _n-by-_k part
  213.                of array _a must contain matrix _A; otherwise, the leading _k-by-_n
  214.                part of array _a must contain matrix _A.
  215.  
  216.      _l_d_a       Integer.  (input)
  217.                Specifies the first dimension of _a as declared in the calling
  218.                program.  If _t_r_a_n_s = 'N' or 'n', _l_d_a >= MMMMAAAAXXXX(1,_n); otherwise,
  219.                _l_d_a >= MMMMAAAAXXXX(1,_k).
  220.  
  221.      _b_e_t_a      Scalar factor.  (input)
  222.                SSSSSSSSYYYYRRRRKKKK: Single precision.
  223.                DDDDSSSSYYYYRRRRKKKK: Double precision.
  224.                CCCCSSSSYYYYRRRRKKKK: Single precision complex.
  225.                ZZZZSSSSYYYYRRRRKKKK: Double precision complex.
  226.  
  227.                For C/C++, a pointer to this scalar is passed when beta is
  228.                complex; otherwise, beta is passed by value.
  229.  
  230.      _c         Array of dimension (_l_d_c,_n).  (input and output)
  231.                SSSSSSSSYYYYRRRRKKKK: Single precision array.
  232.                DDDDSSSSYYYYRRRRKKKK: Double precision array.
  233.                CCCCSSSSYYYYRRRRKKKK: Single precision complex array.
  234.                ZZZZSSSSYYYYRRRRKKKK: Double complex array.
  235.  
  236.                Contains the matrix _C.  Before entry with _u_p_l_o = 'U' or 'u',
  237.                the leading _n-by-_n upper triangular part of array _c must
  238.                contain the upper triangular part of the symmetric matrix.  The
  239.                strictly lower triangular part of _c is not referenced.  On
  240.                exit, the upper triangular part of the updated matrix
  241.                overwrites the upper triangular part of array _c.
  242.  
  243.                Before entry with _u_p_l_o = 'L' or 'l', the leading _n-by-_n lower
  244.                triangular part of array _c must contain the lower triangular
  245.                part of the symmetric matrix.  The strictly upper triangular
  246.                part of _c is not referenced.  On exit, the lower triangular
  247.                part of the updated matrix overwrites the lower triangular part
  248.                of array _c.
  249.  
  250.      _l_d_c       Integer.  (input)
  251.                Specifies the first dimension of _c as declared in the calling
  252.                program.  _l_d_c >= MMMMAAAAXXXX(1,_n).
  253.  
  254. NNNNOOOOTTTTEEEESSSS
  255.      These routines are Level 3 Basic Linear Algebra Subprograms (Level 3
  256.      BLAS).
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  269.  
  270.  
  271.  
  272.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  273.      The following data types are described in this documentation:
  274.  
  275.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  276.  
  277.      Fortran:
  278.  
  279.           Array dimensioned _n           xxxx((((nnnn))))
  280.  
  281.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  282.  
  283.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  284.  
  285.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  286.  
  287.           Single precision              RRRREEEEAAAALLLL
  288.  
  289.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  290.  
  291.           Single precision complex      CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  292.  
  293.           Double precision complex      DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  294.  
  295.      C/C++:
  296.  
  297.           Array dimensioned _n           xxxx[[[[_n]]]]
  298.  
  299.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  300.  
  301.           Character                     cccchhhhaaaarrrr
  302.  
  303.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  304.  
  305.           Single precision              ffffllllooooaaaatttt
  306.  
  307.           Double precision              ddddoooouuuubbbblllleeee
  308.  
  309.           Single precision complex      ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  310.  
  311.           Double precision complex      ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  312.  
  313.      C++ STL:
  314.  
  315.           Array dimensioned _n           xxxx[[[[_n]]]]
  316.  
  317.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  318.  
  319.           Character                     cccchhhhaaaarrrr
  320.  
  321.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))                                                            SSSSSSSSYYYYRRRRKKKK((((3333SSSS))))
  335.  
  336.  
  337.  
  338.           Single precision              ffffllllooooaaaatttt
  339.  
  340.           Double precision              ddddoooouuuubbbblllleeee
  341.  
  342.           Single precision complex      ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  343.  
  344.           Double precision complex      ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  345.  
  346.      Note that you can explicitly declare multidimensional C/C++ arrays
  347.      provided that the array dimensions are swapped with respect to the
  348.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  349.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  350.      message in C), however, the array should be cast to a pointer of the
  351.      appropriate type when passed as an argument to a SCSL routine.
  352.  
  353. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  354.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), CCCCHHHHEEEERRRRKKKK(3S)
  355.  
  356.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  357.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  358.      Linear Algebra Subprograms Technical Forum.
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                                                         PPPPaaaaggggeeee 6666
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.